package openapi

import "context"

// Configuration ...
type Configuration struct {
	Endpoint        string
	AccessKeyID     string
	AccessKeySecret string
}

// Task ...
type Task interface {
	PrepareRequest() *Request
	HandleResponse(req *Request) error
}

// Client 。。。
type Client interface {
	Execute(c context.Context, task Task) error
}

// Service 。。。
type Service interface {
	NewClient(cfg *Configuration) (Client, error)

	GetDefaultClient() (Client, error)
}
